Embodiments of the present invention relate generally to methods and systems for managing databases of information and more particularly to methods and systems for modifying replicated information in a plurality of database instances in a way that allows one or some of instances to be modified without requiring that all of the instances be correspondingly modified.
While some applications use a single instance database deployment model, other applications use a multi-instance database model. In the single database deployment model all data are stored within a single database instance. Alternatively, the data can be implemented in a plurality of database instances. In some cases, each database instance may represent a “pillar” used by one or more applications to store data. For example, an enterprise application may utilize one pillar representing and storing Customer Relationship Management (CRM) information and another pillar for financial information. However, such delineations are not always clear and in fact, some information necessarily crosses over between database instances. For example, a vendor or customer table may be used in both the CRM pillar and the financial pillar. Such a table used in multiple database instances needs to be periodically replicated, usually by a direct, one-to-one copy, between the instances in order to maintain consistency of the data therein.
Since some applications use many pillars and upgrading or modifying each pillar can be costly, users sometimes desire to only upgrade a single pillar. However, due to the pillar architecture, pillars still need to replicate data between themselves. There is then a problem of semantic inconsistency between the pillars and the source data needs to be patched on the fly as data is moved to the other target pillars whose versions may be different from each other. If many patches have been done on multiple target pillars, the replication system will have to deal with a combinatorial explosion of patches especially since intermediate state cannot be preserved. Therefore, pillar replication as of today deals only with same version pillars. That is, table T used in Pillar 1 can only be replicated to Pillar 2 if that pillar is of the same version as Pillar 1. Thus, there is no way to apply a patch or otherwise modify one or less than all of the pillars where replication is occurring between the pillars or instances of the database. Hence, there is a need for improved methods and systems for applying patches or modifications to a plurality of database instances.